<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link type="text/css" rel="stylesheet" href="styles.css">
  <script type="text/javascript" src="config.js"></script>
</head>

<body>
  <h1 class="h">8. 综合实践</h1>
  <p>我们来把所有学过的知识串起来，用真实的数据画一个复杂的图。</p>
  <pre><code># 1. 创建数据和画布
np.random.seed(42)
data = pd.DataFrame({
    'Group': ['A', 'B', 'C', 'D'] * 25,
    'Value': np.random.randn(100)
})
pivot_data = data.pivot(columns='Group', values='Value') # 数据透视

# 2. 创建带子图的画布
fig, axs = plt.subplots(2, 2, figsize=(12, 10))

# 3. 第一个子图：折线图（Pandas plot）
pivot_data.plot(ax=axs[0, 0])
axs[0, 0].set_title('Line Plot of Groups')
axs[0, 0].grid(True)

# 4. 第二个子图：箱线图（Pandas plot）
pivot_data.plot(kind='box', ax=axs[0, 1])
axs[0, 1].set_title('Box Plot of Groups')

# 5. 第三个子图：直方图（Matplotlib OO）
axs[1, 0].hist(pivot_data['A'], bins=15, alpha=0.7, label='Group A', edgecolor='black')
axs[1, 0].hist(pivot_data['B'], bins=15, alpha=0.7, label='Group B', edgecolor='black')
axs[1, 0].set_title('Histogram of A vs B')
axs[1, 0].legend()

# 6. 第四个子图：散点图（Matplotlib OO）
axs[1, 1].scatter(pivot_data['A'], pivot_data['B'], alpha=0.6)
axs[1, 1].set_xlabel('Group A')
axs[1, 1].set_ylabel('Group B')
axs[1, 1].set_title('Scatter: A vs B')

# 7. 调整布局和显示
plt.suptitle('Comprehensive Data Analysis Dashboard', fontsize=16)
plt.tight_layout()
plt.show()</code></pre>
</body>

</html>